package com.dianwoba.core.solr.where;

/**
 * 查询where接口
 * 
 * @author 堵成杰
 * @since 2.0
 *
 */
public interface SolrWhere {

	/**
	 * 查询条件：是否否定
	 * @return
	 */
	boolean containsNot();

	/**
	 * 查询条件：相等
	 * @param propertyName	属性名称
	 * @param value			属性值
	 * @return				where条件对象
	 */
	public SolrWhere eq(String propertyName, Object value);

	/**
	 * 查询条件：不等
	 * @param propertyName	属性名称
	 * @param value			属性值
	 * @return				where条件对象
	 */
	public SolrWhere ne(String propertyName, Object value);
	
	/**
	 * 查询条件：小于
	 * @param propertyName	属性名称
	 * @param value			属性值
	 * @return				where条件对象
	 */
	public SolrWhere lt(String propertyName, Object value);
	
	/**
	 * 查询条件：小于等于
	 * @param propertyName	属性名称
	 * @param value			属性值
	 * @return				where条件对象
	 */
	public SolrWhere le(String propertyName, Object value);
	
	/**
	 * 查询条件：大于
	 * @param propertyName	属性名称
	 * @param value			属性值
	 * @return				where条件对象
	 */
	public SolrWhere gt(String propertyName, Object value);
	
	/**
	 * 查询条件：大于等于
	 * @param propertyName	属性名称
	 * @param value			属性值
	 * @return				where条件对象
	 */
	public SolrWhere ge(String propertyName, Object value);
	
	/**
	 * 查询条件：包含
	 * @param propertyName	属性名称
	 * @param value			属性值
	 * @return				where条件对象
	 */
	public SolrWhere in(String propertyName, Object value);
	
	/**
	 * 查询条件：不包含
	 * @param propertyName	属性名称
	 * @param value			属性值
	 * @return				where条件对象
	 */
	public SolrWhere not_in(String propertyName, Object value);
	
	/**
	 * 查询条件：LIKE
	 * @param propertyName	属性名称
	 * @param value			属性值
	 * @return				where条件对象
	 */
	public SolrWhere like(String propertyName, Object value);
	
	/**
	 * 取得查询字符串
	 * @return	查询字符串
	 */
	public String getCriteria();
	
}
